package com.ease.integration.ftp;

import java.io.File;

public abstract class FtpClient {

	protected String host;

	protected int port;

	protected String username;

	protected String password;

	public abstract boolean connect() throws RuntimeException;

	public abstract boolean disconnect() throws RuntimeException;

	public abstract boolean uploadFile(String remoteDirectory, File file) throws RuntimeException;

	public abstract boolean uploadDirectory(String remoteDirectory, File file) throws RuntimeException;

	public abstract boolean downloadDirectory(String remoteDirectory) throws RuntimeException;

	public abstract boolean downloadFile(String remoteDirectory, String remoteFileName, String localDirectory, String localFileName) throws RuntimeException;

	public abstract boolean hasFile(String remoteDirectory, String fileName) throws RuntimeException;

	public abstract boolean remove(String remoteDirectory, String fileName) throws RuntimeException;

	/**
	 * @return the host
	 */
	public String getHost() {
		return host;
	}

	/**
	 * @param host
	 *            the host to set
	 */
	public void setHost(String host) {
		this.host = host;
	}

	/**
	 * @return the port
	 */
	public int getPort() {
		return port;
	}

	/**
	 * @param port
	 *            the port to set
	 */
	public void setPort(int port) {
		this.port = port;
	}

	/**
	 * @return the username
	 */
	public String getUsername() {
		return username;
	}

	/**
	 * @param username
	 *            the username to set
	 */
	public void setUsername(String username) {
		this.username = username;
	}

	/**
	 * @return the password
	 */
	public String getPassword() {
		return password;
	}

	/**
	 * @param password
	 *            the password to set
	 */
	public void setPassword(String password) {
		this.password = password;
	}

}
